package com.vctgo.accountSet.domain;

import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.vctgo.common.core.annotation.Excel;
import com.vctgo.common.core.web.domain.TenantEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 账套对象 tb_set_accounts
 *
 * @author lhc
 * @date 2024-12-16
 */
@Data
@TableName("tb_set_accounts")
@AllArgsConstructor
@NoArgsConstructor
public class TbSetAccounts extends TenantEntity
{
    private static final long serialVersionUID = 1L;

    /** 账套id */
    @TableId
    private Long id;

    /** 单位名称 */
    @Excel(name = "单位名称")
    private String accountName;

    /** 当前记账年月 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "当前记账年月", width = 30, dateFormat = "yyyy-MM-dd")
    private Date accountCurrentAccountingYear;

    /** 账套启用年月 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "账套启用年月", width = 30, dateFormat = "yyyy-MM-dd")
    private Date accountAccountOpeningDate;

    /** 有效期至 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "有效期至", width = 30, dateFormat = "yyyy-MM-dd")
    private Date accountValidUntil;

    /** 凭证审核 */
    @Excel(name = "凭证审核")
    private Long accountCertificateAuditId;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date accountCreatetime;

    /** 统一社会信用代码 */
    @Excel(name = "统一社会信用代码")
    private String accountCreditCode;

    /** 单位所在地外键id */
    @Excel(name = "单位所在地外键id")
    private String accountAddressId;

    /** 行业外键id */
    @Excel(name = "行业外键id")
    private Long accountProfessionId;

    /** 使用人id */
    @Excel(name = "使用人id")
    private String userId;

    /** 账套模版外键id */
    @Excel(name = "账套模版外键id")
    private Long templateId;


    @TableField(exist = false)
    private List<String> selectedOptions;


    @TableField(exist = false)
    private String templateAccountingStandards;

}
